package prjtgl.metier.comptes.profil_utilisateur.poste;

import java.io.Serializable;
import java.util.List;
import javax.persistence.*;
import prjtgl.metier.comptes.profil_societe.Societe;

/**
 * Direction dans une societe
 * @author Lucie
 */
@Entity
@Table(name="direction")
public class Direction implements Serializable {
	
	/** Identifiant en base de donnees */
	private long id;
	
	/**
	 * Intitule de la direction
	 */
	private String description;
	
	private List<Societe> societes;

	/**
	 * Retourne l'ID BDD
	 * @return ID BDD
	 */
	@Id
	@Column(name="id")
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	public long getId() {
		return id;
	}

	/**
	 * Mutateur de l'ID BDD
	 * @param id Nouvel ID BDD
	 */
	public void setId(long id) {
		this.id = id;
	}

	/**
	 * Retourne l'intitule de la direction
	 * @return Intitule de la direction
	 */
	@Column(name="description")
	public String getDescription() {
		return description;
	}

	/**
	 * Mutateur de l'intitule de la direction
	 * @param description Nouvel intitule de la direction
	 */
	public void setDescription(String description) {
		this.description = description;
	}

	/**
	 * Retourne les societes contenant cette direction
	 * @return Liste des societes
	 */
	@ManyToMany(cascade= CascadeType.ALL,fetch= FetchType.LAZY,mappedBy="directions")
	public List<Societe> getSocietes() {
		return societes;
	}

	/**
	 * Mutateur des societes contenant cette direction
	 * @param societes Nouvelle liste des societes
	 */
	public void setSocietes(List<Societe> societes) {
		this.societes = societes;
	}
	
}
